#ifndef GRAPHIC_ITEM_CONTENT_H
#define GRAPHIC_ITEM_CONTENT_H

#include "../serialization/iserializable.h"

#include <QtCore/QString>

QT_BEGIN_NAMESPACE
class QGraphicsItem;
class QPainter;
class QRectF;
QT_END_NAMESPACE

namespace core
{
class Palette;

class IGraphicItemContent : public ISerializable
{
public:
    virtual ~IGraphicItemContent() {}

    virtual QGraphicsItem* graphicsItem() const = 0;

    virtual void drawThumbnail(QPainter& painter,
        const QRectF& boundingRect) = 0;

    virtual QRectF croppedBoundingRect() const = 0;

    virtual void recheckIfFits() = 0;

    virtual void setPalette(const core::Palette* const palette) = 0;
};

} // namespace swp

#endif
